Skip to content

feat: 新增插件受控扩展窗口系统#42

Open
xiaowumin-mark wants to merge 15 commits into
amll-dev:mainfrom
xiaowumin-mark:feat/plugin-window
Open

feat: 新增插件受控扩展窗口系统#42
xiaowumin-mark wants to merge 15 commits into
amll-dev:mainfrom
xiaowumin-mark:feat/plugin-window

Conversation

@xiaowumin-mark
Copy link
Copy Markdown

概要

  • 为 AMLL Player 插件系统新增宿主管理的扩展窗口能力,插件可以通过 extensionContext.windows 创建、查询和控制自己的独立窗口。
  • 扩展窗口宿主会按依赖顺序重新执行插件脚本,并通过 registerWindowComponent() 渲染对应窗口组件。
  • 补齐类型定义、权限配置、文档说明和中文测试插件,覆盖完整使用路径。

主要改动

  • Rust/Tauri 侧新增扩展窗口 state、命令、归属校验与销毁清理,确保窗口创建、复用、关闭和生命周期回收都受控。
  • 前端新增 extension-window.html 宿主入口、共享 runtime/loader,以及 extension-window.tsx 的窗口渲染和错误页。
  • 扩展上下文新增 runtimewindowwindowsregisterWindowComponent 等 API,并加入窗口句柄失效保护。
  • 补齐 README 的插件窗口 API 说明,新增 packages/player/examples/extension-window-api-test.js 作为中文全面测试插件。

验证

  • pnpm -F player build
  • cargo check -p amll-player(需项目内 vendor/ffmpeg 环境)
  • pnpm typecheck 仍存在仓库内既有的 packages/player/src/pages/settings/player.tsx 类型错误,与本次改动无关

备注

  • 本次改动保持了主窗口现有插件加载行为,仅新增扩展窗口能力。

@xiaowumin-mark
Copy link
Copy Markdown
Author

测试 插件受控扩展窗口系统 插件:extension-window-api-test.js
本次更新插件的API以及使用说明:EXTENSION_WINDOW_API-CN.md

所有更改已完成

@xiaowumin-mark
Copy link
Copy Markdown
Author

本插件默认没有封装窗口之间通信的功能,可使用
BroadcastChannelApi
LocalStorageApi
进行跨标签页通信

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant